1
La rotazione parallela: Mappare la logica sequenziale sui thread della GPU
AI024Lesson 4
00:00

La Rotazione parallela rappresenta il cambiamento fondamentale nella filosofia computazionale dal sequenza temporale (fare una cosa dopo l'altra) a un distribuzione spaziale (fare tutto contemporaneamente su una griglia).

1. L'heuristica dell'indipendenza

Questa è la regola d'oro del calcolo GPU: «Ogni volta che il tuo problema consiste nel 'applicare qualcosa in modo indipendente a N elementi', questa è la prima mappatura da provare». Questo approccio dati-parallelo è la mela caduta dall'albero nell'accelerazione GPU, dove il sovraccarico di gestione dei thread è insignificante rispetto al flusso massimo simultaneo.

2. Precisione e carico

I kernel HIP gestiscono tipicamente grandi array di tipi primitivi. Nel grafica ad alte prestazioni e nell'apprendimento automatico, di solito utilizziamo float (precisione semplice), mentre le simulazioni scientifiche che richiedono una stabilità numerica estrema utilizzano double (precisione doppia).

CPU: TemporaleLA ROTAZIONEGPU: Spaziale

3. Dall'iterazione all'occupazione

Nel codice della CPU, il processore "visita" i dati tramite cicli. Nella logica GPU, i dati "occupano" un thread. Smetti di scrivere come fare il ciclo e inizia a scrivere ciò che un singolo lavoratore dovrebbe fare a un determinato coordinato.

$$\text{Indice } i = \text{blockIdx.x} \times \text{blockDim.x} + \text{threadIdx.x}$$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>